package my11;

/**
 * leecode11题盛最多水的容器
 */
public class SuanFa11 {
    public int maxArea(int[] height) {
        int length = height.length-1;
        int right = length;
        int left = 0;
        int max = 0;

        //int[] num = {1,8,6,2,5,4,8,3,7};
        while(left < right){
            //选出一个小的指针*宽度计算出面积
            //之前使用的
            //if 判断来计算，可以使用Math函数代替，会省去很多的代码量
            int s = Math.min(height[left], height[right]) * (right - left);
            //指针移动后判断当前面积是否为最大值，赋值给max最大值
            //又是Math函数！！！！！
            max = Math.max(s, max);
        //判断液体体积是长×宽，也就是容器短的那一边对应数组的值×两个指针之间的长度
            //所以当右指针的值大于左指针的值时，小的指针＋1，反之亦然,当然不易燃了，右指针是要-1的喔！！
            if (height[left] >= height[right]){

              right--;

            }else{
                left++;
            }

        }
        return max;
    }

    public static void main(String[] args) {
        int[] num = {1,8,6,2,5,4,8,3,7};
        SuanFa11 suanFa11 = new SuanFa11();
        int i = suanFa11.maxArea(num);
        System.out.println("最大的值是"+ i);

    }

}
